/**
 * (C)2012 Exlu Corporation. All rights reserved.
 * 注意事項   :
 */
package cn.exlu.wea.field.validator;

/**
 * 数值校验类
 * @author Mark 
 * @version 1.0.1.1
 * @CreateTime 2012-12-10
 * @UpdateTime 2012-12-28
 */
public final class LpValidatorDigitalUtil {
    
    /**
     * 半角数值判定
     * 包含对浮点数的判定
     * 
     * @param str 输入字段
     * @return true：是 false: 否
     */
    public static boolean isDigital(String str) {
        // 不含【+】【-】符号的数值
        if (str.matches("^[1-9]{1}[\\d]*[.]?[\\d]*$")) {
            return true;
        }
        // 含有【+】【-】符号的数值
        if(str.matches("^[+|-]{1}[1-9]{1}[\\d]*[.]?[\\d]*$")){
            return true;
        }
        // 整数部分只有1位且为0的数值
        if(str.matches("^[+|-]?[0]{1}[.]{1}[\\d]*$")){
            return true;
        }
        // +0 -0的数字
        if(str.matches("[+|-]?[0]{1}")){
            return true;
        }
        return false;
    }
    
    /**
     * 正整数判定
     * 判定方式：不以零开头的一连串数字
     * @param str 输入字段
     * @return true：是 false: 否
     */
    public static boolean isPositiveInt(String str){
        return str.matches("^[+]?[1-9]{1}+[\\d]*$");
    }
    
    /**
     * 负整数判定
     * 判定方式：首字符为"-"开头，并且其后不以零开头的一连串数字
     * @param str 输入字段
     * @return true：是 false: 否
     */
    public static boolean isNegativeInt(String str){
        return str.matches("^[-]{1}[1-9]+[\\d]*$");
    }
}
